package me.zhengjie.utils;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @Description 和图片相关的工具类
 * @Author jiangyn
 * @Date 2019/6/17 9:42
 */
public class ImageUtils {

    /**
     * 获取html片段中img的src
     * @param htmlStr
     * @return
     */
    public static List<String> getImgStr(String htmlStr) {
        List<String> list = new ArrayList<>();
        String img = "";
        Pattern p_image;
        Matcher m_image;
        // String regEx_img = "<img.*src=(.*?)[^>]*?>"; //图片链接地址
        String regEx_img = "<img.*src\\s*=\\s*(.*?)[^>]*?>";
        p_image = Pattern.compile(regEx_img, Pattern.CASE_INSENSITIVE);
        m_image = p_image.matcher(htmlStr);
        while (m_image.find()) {
            // 得到<img />数据
            img = m_image.group();
            // 匹配<img>中的src数据
            Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(img);
            while (m.find()) {
                list.add(m.group(1));
            }
        }
        return list;
    }

    /**
     * 获取文件后缀
     * @param fileName 文件名称
     * @return 文件后缀
     */
    public static String getFileExtension(String fileName) {
        if(StringUtils.isEmpty(fileName)) return "";
        String extension = fileName.substring(fileName.lastIndexOf(".") + 1);
        if(!extension.equals("")){
            extension = extension.toLowerCase();
        }
        return extension;
    }

    /**
     * 根据文件扩展名判断文件是否图片格式
     * @param fileName 文件名称
     * @return 是否是图片
     */
    public static boolean isImage(String fileName) {
        String extension = getFileExtension(fileName);
        String[] imageExtension = new String[]{"jpeg", "jpg", "bmp", "png","gif"};

        for (String e : imageExtension){
            if (extension.toLowerCase().equals(e)) {
                return true;
            }
        }

        return false;
    }
}
